1장. 말로 시켜서 첫 웹페이지 만들기
출처: 『혼자 공부하는 바이브 코딩 with 클로드 코드』(조태호) | 예제 코드: github.com/taehojo/vibecoding
코드는 분위기만 — HTML, CSS, 자바스크립트 같은 말은 몰라도 됩니다. 표의 '비유'와 '위험'만 봐도 충분해요.
이 장에서 처음으로 직접 만들어 본다.
코드는 한 줄도 안 친다.
AI에게 말로 시키고, 화면을 보고, 다시 말로 고친다.
그게 전부다.
0. 이 장의 새 단어
0장 용어집에 없는 말이 이 장에 셋 나온다.
여기서 먼저 풀어 둔다. 본문에서 막히면 여기로 돌아오면 된다.
(나머지 어려운 말 — 바이브 코딩, LLM, 프롬프트, 아티팩트, 커스터마이즈 — 은 모두 0장 용어집에 있다.)
전용 모델형
한 문장 뜻 — 특정 AI 모델 하나를 내 컴퓨터에 직접 깔아 쓰는 코딩 도구 방식.
일상비유 — 택시를 부르는 대신 내 차를 사는 것. 매번 빌릴 필요 없고, 내 짐(파일)을 직접 싣고 다닌다.
한 줄 예 —
# 클로드 코드가 바로 이 전용 모델형이다
# 내 컴퓨터에 깔면 내 파일을 직접 만들고 고친다
게시(publish)
한 문장 뜻 — 내가 만든 작품을 인터넷에 올려, 링크 하나로 남에게 보여 주는 기능.
일상비유 — 그린 그림을 액자에 넣어 벽에 거는 것. 링크는 "이 그림 보러 와"라고 알려 주는 주소다.
한 줄 예 —
# 게시하면 주소가 하나 생긴다
# 그 주소를 받은 사람은 누구나 내 페이지를 본다
link = artifact.publish() # https://... 같은 링크가 나온다
트랜스포머(Transformer)
한 문장 뜻 — 문장에서 중요한 단어에 집중해 뜻을 알아내는, 오늘날 AI의 뼈대가 된 구조.
일상비유 — 통역사. 긴 말 속에서 핵심 단어를 골라 듣고, 그걸 중심으로 옮긴다.
한 줄 예 —
# 클로드, ChatGPT 같은 LLM이 다 이 위에서 자랐다
# 2017년 구글이 처음 발표했다 (외워 둘 필요는 없다)
이 장에서 딱 3가지만
이 장에서 딱 3가지만
- 바이브 코딩은 코드를 직접 안 쓰고 AI와 말로 만든다. 그 도구는 세 종류로 나뉜다.
- 클로드 아티팩트로 코드 한 줄 없이 첫 웹페이지를 만들고, 게시해서 남에게 보여 줄 수 있다.
- 프롬프트가 구체적일수록 결과가 좋아진다. 한 번에 안 끝내고, 말로 계속 고쳐 나간다.
1. 바이브 코딩이 뭔데?
막히는 장면
"코딩을 배우려면 영어 같은 문법부터 몇 달은 외워야 하는 거 아니야?"
이렇게 지레 포기한 적 있죠?
그런데 요즘은 코드를 한 줄도 안 쓰고, AI에게 "이런 거 만들어 줘"라고 말만 해도 프로그램이 나온다.
그 새로운 방식이 바로 바이브 코딩이다.
비유 먼저 — 요리 못 하는 사람과 요리사
요리를 전혀 못 하는 사람이 요리사에게 말한다.
"오늘 더우니까 시원한 파스타 해 줘."
요리사가 알아서 만들어 온다.
맛보고 "좀 더 짜게"라고 고친다.
레시피도, 불 조절도 몰라도 된다.
이게 바이브 코딩이다.
| 비유 | 코드 | 위험 |
|---|---|---|
| "파스타 해 줘"라고 말함 | ai.ask("계산기 만들어 줘") |
너무 막연하면 엉뚱한 게 나옴 |
| 맛보고 "더 짜게" 수정 | ai.ask("버튼을 더 크게 해 줘") |
안 보고 그냥 믿으면 틀린 채 굳음 |
한 문장 정의
바이브 코딩은 코드를 직접 타이핑하는 대신, AI와 대화하며 만들고·확인하고·고치는 새로운 개발 방식이다.
예시 폭격
예시 1 (완성예 — 그대로 따라 읽기)
전통적 코딩과 바이브 코딩은 이렇게 다르다.
# 전통적 코딩 — 내가 다 적는다
# 1. 레시피(문법)를 외운다
# 2. 재료(코드)를 한 줄씩 직접 친다
# 3. 불 조절(오류 수정)도 내가 한다
# 바이브 코딩 — AI에게 말로 시킨다
ai.ask("계산기 프로그램 만들어 줘")
전통적 코딩은 내가 요리사다.
바이브 코딩은 AI가 요리사고, 나는 손님이다.
예시 2 (부분완성 — 빈칸 채우기)
아래 빈칸에 들어갈 말을 떠올려 보자.
# 손님이 요리사에게 주문하듯, AI에게 말로 시킨다
ai.ask("________ 만들어 줘") # 빈칸: 만들고 싶은 것
빈칸에는 "시작 페이지", "할 일 목록", "계산기" 같은 게 들어간다.
답은 "내가 원하는 무엇이든".
예시 3 (독립적용 — 직접 판단)
다음 둘 중 어느 쪽이 바이브 코딩일까?
(가) 책을 펴 놓고 코드 문법을 한 줄씩 외워 직접 타이핑한다.
(나) "오늘 날씨 보여 주는 페이지 만들어 줘"라고 AI에게 말한다.
답은 (나)다.
(가)는 전통적 코딩이다.
미니 시나리오 — 이럴 때 이렇게
AI가 만든 결과가 마음에 안 든다.
이럴 때는 처음부터 다시 안 한다.
그냥 말로 고친다.
"색을 더 밝게 해 줘", "글씨를 더 크게 해 줘".
맛보고 간을 맞추듯이.
2. AI 코딩 도구는 세 종류
막히는 장면
"AI로 코딩한다는데, 그게 다 같은 건가? 뭘 골라야 하지?"
이렇게 헷갈린 적 있죠?
AI 코딩 도구는 크게 셋으로 나뉜다.
각각 쓰는 자리가 다르다.
비유 먼저 — 택시 vs 렌터카 vs 내 차
이동 수단에 빗대면 한눈에 들어온다.
택시는 그냥 타면 된다. 가장 쉽다.
렌터카는 원하는 차를 고를 수 있다. 대신 렌트비와 기름값을 둘 다 낸다.
내 차는 한 번 사면 추가 비용이 없다. 대신 처음에 사는 수고가 있다.
| 비유 | 코드(도구) | 위험 |
|---|---|---|
| 택시 — 그냥 탐 | 웹 기반 챗봇 (ChatGPT, 클로드 웹) | 내 컴퓨터 파일을 직접 못 만짐, 복붙 번거로움 |
| 렌터카 — 골라 탐 | 모델 선택형 (커서, 리플릿, 윈드서프) | 도구값 + 모델값 이중 부담 |
| 내 차 — 사서 탐 | 전용 모델형 (클로드 코드, 제미나이 CLI) | 처음 설치하는 수고가 필요 |
한 문장 정의
AI 코딩 도구는 설치 없는 웹 챗봇에서, 모델을 골라 쓰는 편집기를 거쳐, 내 컴퓨터에 깔아 파일까지 다루는 전용 모델형으로 깊어진다.
이 책은 그중 전용 모델형인 클로드 코드를 주로 다룬다.
(전용 모델형은 위 '0. 이 장의 새 단어'에 풀어 두었다.)
예시 폭격
예시 1 (완성예)
세 유형을 한 표로 견주면 이렇다.
| 항목 | 웹 기반 챗봇 | 모델 선택형 | 전용 모델형 |
|---|---|---|---|
| 대표 도구 | ChatGPT, 클로드 웹 | 커서, 리플릿 | 클로드 코드, 제미나이 CLI |
| 설치 | 불필요 | 필요 | 필요 |
| 비용 | 모델값만 | 도구 + 모델 이중 | 모델 사용료만 |
| 내 파일 접근 | 불가 | 가능 | 가능 |
| 시작하기 | 가장 쉬움 | 보통 | 보통 |
지금은 "셋 중 클로드 코드가 내 차"라는 것만 기억하면 된다.
예시 2 (부분완성)
빈칸에 도구 유형을 채워 보자.
설치가 필요 없고 웹에서 바로 쓰는 건 → ____ (답: 웹 기반 챗봇)
내 컴퓨터에 깔아 파일을 직접 만지는 건 → ____ (답: 전용 모델형)
예시 3 (독립적용)
"커서(Cursor)는 여러 모델을 골라 쓸 수 있다."
이 도구는 세 유형 중 무엇일까?
답은 모델 선택형이다.
'모델을 고른다'가 핵심 단서다.
미니 시나리오 — 이럴 때 이렇게
프로그래밍이 처음이라 설치가 부담스럽다.
이럴 때는 웹 기반 챗봇(클로드 웹)으로 시작한다.
이 장의 실습이 바로 그것이다.
나중에 더 깊이 가고 싶으면 전용 모델형으로 넘어간다.
3. 클로드 아티팩트로 첫 웹페이지 만들기
막히는 장면
"웹페이지를 만들려면 HTML이며 CSS며 다 배워야 하는 거 아니야?"
이렇게 막막한 적 있죠?
아니다.
클로드의 아티팩트 기능을 쓰면, 코드 한 줄 없이 페이지가 만들어진다.
화면 오른쪽에서 실제로 도는 모습까지 바로 보인다.
비유 먼저 — 옷 가게 전신 거울
아티팩트는 옷 가게의 전신 거울 같다.
말로 "밝은 색 셔츠 보여 줘" 하면, 거울에 입은 모습이 바로 뜬다.
"이건 별로네, 저걸로" 하고 바로 바꿔 볼 수 있다.
대화창은 점원과의 대화, 아티팩트는 거울 속 내 모습이다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 거울에 입은 모습이 뜸 | artifact.show(생성된_페이지) |
미리보기만 보고 게시 안 하면 남에게 못 보여 줌 |
| 거울 보고 "저걸로" 교체 | ai.ask("색을 밝게 바꿔 줘") |
안 보고 믿으면 엉뚱한 채로 굳음 |
한 문장 정의
아티팩트는 클로드가 코드를 만들고 그 결과를 바로 미리 보여 주는 작업 공간(대화창 옆 패널)이다.
(아티팩트는 0장 용어집에도 있다.)
실습 — 나만의 시작 페이지 만들기
여섯 걸음이면 끝난다.
한 걸음씩 천천히 따라가면 된다.
걸음 1 — 클로드 가입
1. https://claude.ai 접속
2. [Google로 계속하기] 클릭 (가장 쉽다)
3. "환영합니다" 화면이 뜨면 성공
걸음 2 — 아티팩트 열기
1. 왼쪽 사이드바에서 [아티팩트] 아이콘 클릭
2. [+ 새 아티팩트] 버튼 클릭
3. [앱 및 웹사이트] 선택
걸음 3 — 프롬프트 한 줄 입력
"오늘의 날씨와 주요 뉴스를 보여 주는
나만의 시작 홈페이지를 만들고 싶어."
Enter를 누르면 클로드가 즉시 코드를 만든다.
시계, 날씨, 뉴스, 검색까지 든 완성품이 오른쪽 거울에 뜬다.
걸음 4 — 더 구체적으로 다시 시키기
"밝고 깔끔한 스타일을 선호해. 시계와 검색바도 추가해 줘.
기술 관련 뉴스를 보여 줘."
클로드가 만들 계획을 먼저 보여 준다.
"이 계획대로 시작해 줘"라고 답하면 제작이 시작된다.
걸음 5 — 게시해서 남에게 보여 주기
1. 아티팩트 위쪽 [게시] 버튼 클릭
2. [게시 및 링크 복사] 클릭
3. 그 링크를 브라우저에 붙여넣기 → 완성
주의 — 게시하면 링크를 가진 사람은 누구나 본다.
(검색에는 안 나오니 안심해도 된다.)
(게시는 위 '0. 이 장의 새 단어'에 풀어 두었다.)
걸음 6 — 커스터마이즈로 개성 더하기
"구글 스타일로 디자인을 수정해 줘." → 디자인이 바뀐다
"오늘의 할 일 목록을 추가해 줘." → 할 일 위젯이 생긴다
"아이템을 한 열에 두 개씩 배치해 줘." → 2열로 정리된다
(커스터마이즈는 0장 용어집에 있다.)
예시 폭격
예시 1 (완성예 — 완성된 페이지 모습)
여섯 걸음을 마치면 이런 페이지가 나온다.
┌────────────────┬────────────────┐
│ 현재 시간 │ 오늘의 할 일 │
│ 12:19:57 │ □ 프로젝트 작성│
├────────────────┼────────────────┤
│ 오늘의 날씨 │ 최신 기술 뉴스 │
│ 22°C 맑음 │ 새 소식 두 줄 │
└────────────────┴────────────────┘
Google 검색 바
코드는 한 줄도 안 쳤다.
말로만 시켰다.
예시 2 (부분완성)
게시 절차의 빈칸을 채워 보자.
-
[____] 버튼 클릭 (답: 게시)
-
[게시 및 링크 복사] 클릭
-
복사한 ____를 친구에게 전달 (답: 링크)
예시 3 (독립적용)
만든 페이지를 친구에게 보여 주고 싶다.
미리보기 창만 보여 주면 될까?
아니다.
[게시]를 눌러 링크를 만들어 전달해야 한다.
미리보기는 나만 보는 거울이고, 게시는 액자를 벽에 거는 것이다.
미니 시나리오 — 이럴 때 이렇게
페이지를 만들었는데 색이 너무 어둡다.
이럴 때는 새로 안 만든다.
그냥 "더 밝은 색으로 바꿔 줘"라고 말한다.
거울 앞에서 옷만 바꿔 입듯이.
4. 프롬프트가 곧 실력
막히는 장면
AI에게 "멋진 홈페이지 만들어 줘"라고 했더니, 내 마음과 전혀 다른 게 나온 적 있죠?
AI가 잘못한 게 아니다.
'멋지다'가 무슨 뜻인지 안 알려 줬을 뿐이다.
말을 구체적으로 바꾸면 결과가 확 달라진다.
그래서 프롬프트가 곧 실력이다.
비유 먼저 — 택시 행선지
택시에 타서 "좋은 데로 가 주세요"라고 하면 기사가 난감하다.
"서울역으로 가 주세요"라고 또렷이 대야 제대로 간다.
AI도 행선지(원하는 것)를 또렷이 대 줘야 제대로 데려다준다.
| 비유 | 코드(프롬프트) | 위험 |
|---|---|---|
| "좋은 데로" (모호) | ai.ask("멋진 홈페이지") |
AI가 제멋대로 만듦 |
| "서울역까지" (구체) | ai.ask("밝고 깔끔한, 시계+검색바+기술뉴스") |
원하는 결과에 가까움 |
한 문장 정의
좋은 프롬프트는 구체적이고 맥락이 또렷하며, 같은 AI라도 프롬프트가 결과의 질을 좌우한다.
(프롬프트는 0장 용어집에 있다.)
예시 폭격
예시 1 (완성예 — 나쁜 → 좋은 → 더 좋은)
같은 일을 시키는 세 가지 프롬프트를 견주자.
# 나쁜 프롬프트 — 막연함
ai.ask("홈페이지 만들어 줘")
# 좋은 프롬프트 — 구체적
ai.ask("서울 날씨와 기술 뉴스를 보여 주는 시작 페이지")
# 더 좋은 프롬프트 — 스타일 + 기능 + 콘텐츠
ai.ask("밝고 깔끔한 스타일. 시계와 검색바 추가. 기술 뉴스 표시.")
아래로 갈수록 원하는 결과에 가까워진다.
예시 2 (부분완성)
아래 모호한 프롬프트를 구체적으로 고쳐 보자.
모호 — "예쁜 페이지 만들어 줘"
구체 — "_ 스타일로, _ 기능을 넣어서 만들어 줘"
(빈칸 예: "밝고 깔끔한" / "시계와 검색바")
무엇을 넣을지 직접 적는 순간 결과가 또렷해진다.
예시 3 (독립적용)
다음 둘 중 더 좋은 프롬프트는?
(가) "괜찮은 거 하나 만들어 줘"
(나) "흰 배경에, 큰 시계 하나와 할 일 목록을 넣어 줘"
답은 (나)다.
행선지를 또렷이 댔기 때문이다.
미니 시나리오 — 이럴 때 이렇게
결과가 자꾸 엉뚱하게 나온다.
이럴 때는 AI를 탓하지 않는다.
내 프롬프트에 빠진 게 없는지 본다.
색, 기능, 분위기 — 빠진 칸을 채워 다시 시킨다.
단순 규칙
지금은 이 한 줄만 들고 가면 된다.
AI에게 시킬 땐 구체적으로, 한 번에 말고 작게 쪼개서, 결과는 꼭 눈으로 확인.
한 걸음 더 ▸ (지금 몰라도 됨)
"AI가 다 알아서 해 주니 확인은 안 해도 되지 않나?"는 아니다.
결과를 직접 보고 고치는 게 바이브 코딩의 절반이다.
이건 책을 따라가며 자연스레 몸에 밴다. 지금은 위 한 줄 규칙만 충분하다.
사이드박스 — '바이브 코딩'은 어디서 온 말? (흥미용, 건너뛰어도 됨)
2025년 안드레이 카파시(Andrej Karpathy)가 처음 꺼낸 말이다.
코드 문법을 따지기보다 "분위기(vibe)대로" AI에게 맡겨 만든다는 뜻이다. 외워 둘 필요는 없다.
부록 박스 — AI는 어떻게 여기까지 왔나? (참고용, 건너뛰어도 됨)
사람 뇌를 흉내 낸 작은 계산기(뉴럴넷, 1940년대)에서 출발했다.
이미지를 알아보는 눈(CNN), 그럴듯한 가짜를 그리는 화가(GAN), 문장 흐름을 읽는 독서가(RNN)를 거쳤다.
그 위에 중요한 단어에 집중하는 통역사(트랜스포머, 2017년 구글)가 나왔고, 오늘날의 LLM(클로드·ChatGPT)이 자랐다.
정리
핵심 셋만 남긴다.
-
바이브 코딩은 코드를 안 쓰고 AI와 말로 만든다. 도구는 웹 챗봇·모델 선택형·전용 모델형 셋이다.
-
클로드 아티팩트로 코드 한 줄 없이 첫 페이지를 만들고, 게시로 남에게 보여 줄 수 있다.
-
프롬프트가 구체적일수록 결과가 좋다. 한 번에 안 끝내고 말로 계속 고친다.
다음 장 예고 — 프롬프트를 더 잘 쓰는 방법을 다룬다. (지금 몰라도 됩니다.)
클릭하거나 Space를 눌러 뒤집기